www.gusucode.com > RQCMS PHP文章管理系统 v2.3PHP源码程序 > RQCMS PHP文章管理系统 v2.3/rqcms_v2.3/rqcms_v2.3/core/manager/seo.php

    <?php
include RQ_CORE.'/include/tag.php';
include RQ_CORE.'/library/func.convert.php';
$searchfield='tag,keywords,title,excerpt';
$searchnum=0;
$page=isset($_GET['page'])?$_GET['page']:1;
$tagdb=array();
if(RQ_POST)
{
	if($action=='modredirect'||$action=='addredirect')
	{
		$old=isset($_POST['old'])?$_POST['old']:'';
		$new=isset($_POST['new'])?$_POST['new']:'';
		$status=isset($_POST['status'])?$_POST['status']:'1';
		if(!$old)  redirect('原网址不得为空', $admin_url.'?file=seo&action=addredirect');
		if(!$new)  redirect('转向地址不得为空', $admin_url.'?file=seo&action=addredirect');
	}
	switch($action)
	{
		case 'modtag':
			//修改Tag
			$newitem = $_POST['tag'];
			$olditem = $_POST['oldtag'];
			$result  = checktag($newitem);
			if($result)	{
				redirect($result);
			}
			$oldtagdata=gettagids($olditem);
			$aquery=$DB->query("Select aid,tag from ".DB_PREFIX."article where aid in ($oldtagdata)");
			while($data=$DB->fetch_array($aquery))
			{
				$articletag=$data['tag'];
				$tagarr=explode(',',$articletag);
				if($tagarr){
					foreach($tagarr as $k=>$v)
					{
					if($v==$olditem) unset($tagarr[$k]);
					if($v==$newitem) unset($tagarr[$k]);
					}
					$tagarr[]=$newitem;
					$aid=$data['aid'];
					$newarticletag=implode(',',$tagarr);
					$DB->query("update ".DB_PREFIX."article set tag='$newarticletag' where aid=$aid");
				}
			}
			
			$aidarr=explode(',',$oldtagdata);
			if($aidarr)
			{
				foreach($aidarr as $ar)
				{
					modtag($olditem,$newitem,$ar);
				}
				redirect('修改Tags成功', $admin_url.'?file=seo&action=taglist');
			}
			else
			{
				redirect('没有找到原tasg,请检查', $admin_url.'?file=seo&action=taglist');
			}
			break;
		case 'deltag':
			//批量删除Tag
			if (!isset($_POST['tag'])) {
				redirect('未选择任何Tags',$admin_url.'?file=seo&action=taglist');
			}
			$tags=is_array($_POST['tag'])?$_POST['tag']:array($_POST['tag']);
			foreach ($tags as $tag)
			{
				removealltag($tag);
			}
			redirect('成功删除所选Tags', $admin_url.'?file=seo&action=taglist');
			break;
		case 'delredirect':
			//批量删除Tag
			if (!isset($_POST['rid'])) {
				redirect('未选择任何跳转网址',$admin_url.'?file=seo&action=taglist');
			}
			$vids=implode_ids($_POST['rid']);
			$DB->query('delete from '.DB_PREFIX."redirect where  rid in ($vids)");
			redirect_recache();
			redirect('成功删除所选跳转网址', $admin_url.'?file=seo&action=redirect');
			break;
		case 'modredirect':
			//修改
			if (!isset($_POST['rid'])) {
				redirect('未指定修改的网址',$admin_url.'?file=seo&action=redirect');
			}
			$rid=intval($_POST['rid']);
			$search=$DB->fetch_first('select * from '.DB_PREFIX."redirect where old='$old' and rid!=$rid");
			if($search) redirect('原地址不能同时转向多个地址', $admin_url.'?file=seo&action=addredirect');
			$DB->query("update ".DB_PREFIX."redirect set `old`='$old',`new`='$new',`status`='$status' where rid=$rid");
			redirect_recache();
			redirect('成功修改网址跳转',$admin_url.'?file=seo&action=redirect');
			break;
		case 'addredirect';
			$search=$DB->fetch_first('select * from '.DB_PREFIX."redirect where old='$old'");
			if($search) redirect('该原转向地址已经存在了,请检查', $admin_url.'?file=seo&action=addredirect');
			$DB->query('insert into `'.DB_PREFIX."redirect` (`old`,`new`,`status`) values ('$old','$new','$status')");
			redirect_recache();
			redirect('成功添加网址跳转',$admin_url.'?file=seo&action=redirect');
		default:
			redirect('未定义操作', $admin_url.'?file=seo');
	}
}

//下边为GET方法
if(empty($action)) $action='taglist';
//标签列表
if ($action=='taglist') {
	if($page) {
		$start_limit = ($page - 1) * 30;
	} else {
		$start_limit = 0;
		$page = 1;
	}
	$query_count = $DB->fetch_first("SELECT count(*) FROM ".DB_PREFIX."tag");
	$total=$query_count['count(*)'];
	//$multipage = multi(100, $shownum, $page, 'tag.php');
	$query = $DB->query("SELECT * FROM ".DB_PREFIX."tag ORDER BY tid DESC LIMIT $start_limit,30");
	while ($tag = $DB->fetch_array($query)) {
		$tag['url'] = urlencode($tag['tag']);
		$tag['item'] = htmlspecialchars($tag['tag']);
		$usenum=explode(',',$tag['aids']);
		$tag['usenum']=count($usenum);
		$tagdb[] = $tag;
	}
	$multipage = multi($total, 30, $page, $admin_url.'?file=seo&action=taglist');
	unset($tag);
	$DB->free_result($query);
}//list
else if($action=='redirect')
{
	if($page) {
		$start_limit = ($page - 1) * 30;
	} else {
		$start_limit = 0;
		$page = 1;
	}
	$numsql = "LIMIT $start_limit, 30";
	$coutarr=$DB->fetch_first('select count(*) from '.DB_PREFIX."redirect");
	$total=$coutarr['count(*)'];
	$multipage = multi($total, 30, $page, $admin_url.'?file=tag&action=redirect');
	$rs = $DB->query("SELECT * FROM ".DB_PREFIX."redirect $numsql");
	$redirectdb = array();
    while ($tag = $DB->fetch_array($rs)) {
		$tag['status']=$tag['status']==1?301:302;
		$redirectdb[] = $tag;
	}
	unset($tag);
	$DB->free_result($rs);
}
//修改标签
else if($action == 'modtag') {
	$tag = $_GET['tag'];
	$aids=gettagids($tag);
	if ($aids) {
		$aidarr=explode(',',$aids);
		$query  = $DB->query("SELECT aid, title FROM ".DB_PREFIX."article WHERE aid IN ($aids)");
		$articledb = array();
		while ($article = $DB->fetch_array($query)) {
			$articledb[] = $article;
		}
		$usenum=count($aidarr);
		unset($article);
		$DB->free_result($query);
	}
}else if($action == 'modredirect') {
	$rid = $_GET['rid'];
	$redirectdb=$DB->fetch_first("SELECT * FROM `".DB_PREFIX."redirect` WHERE and rid=$rid");
	if(!$redirectdb) redirect('不存在的转向网址记录', $admin_url.'?file=seo');
	$selected301=$redirectdb['status']=='1'?'selected':'';
	$selected302=empty($selected301)?'selected':'';
}else if($action=='addredirect')
{
	$selected302=$selected301=$redirectdb['old']=$redirectdb['new']='';
}
else if($action=='tagrebuilt')
{
	if(isset($_GET['tagindex']))
	{
		$tagindex=intval($_GET['tagindex']);
		rebuildtag($tagindex,'?file=seo&action=tagrebuilt');
	}
	else
	{
		redirect('Tag更新全部完成', '?file=seo');
	}
}